

/**
 * 简单工厂设计模式
 *
 * @author weiZhiLin
 * @version 1.0
 * @date 2019/12/26 11:56
 */
public class SimplePhoneFactory {
    /*
    以下的 cratePhone 类包含了实例化的代码，这是一种错误的实现。
    如果在客户类中存在这种实例化代码，就需要考虑将代码放到简单工厂中。
    参考： https://github.com/CyC2018/CS-Notes/blob/master/notes/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%20-%20%E7%AE%80%E5%8D%95%E5%B7%A5%E5%8E%82.md
    public Phone cratePhone(String type) {

        // 是这句出大问题！！
        Phone phone = null;

        switch (type) {
            case "6":
                phone = new iPhone6();
                break;
            case "7":
                phone = new iPhone7();
                break;
            default:
                phone = new iPhone8();
        }
        return phone;
    }*/

    public Phone cratePhone(String type) {
        switch (type) {
            case "6":
                return new iPhone6();
            case "7":
                return new iPhone7();
            default:
                return new iPhone8();
        }
    }
}
